<%@ page import="day04.Student" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/1/7
  Time: 17:18
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>
<head>
    <title>el表发式</title>
</head>
<body>
    <%--el表发式--%>
    <%--1.概述
        Expression language  表达式语言 是Servlet规范的一部分,jsp2.0规范中添加的
        作用:用于jsp页面上获取数据
        格式:${表达式内容}

    --%>
    <%pageContext.setAttribute("msg","被偏爱的都有恃无恐");%>
    <%session.setAttribute("message","这就是爱");%>
    <%--使用java代码块获取数据并行写出到页面上--%>
    <%out.print(pageContext.getAttribute("msg"));%><br/>
    <%out.print(session.getAttribute("message"));%><br/>
    <%--el表达式--%>
    ${msg}<br/>
    ${message}

    <%--el表发式获取不同类型的数据
        基本数据类型
        自定义对象
        数组
        list集合
        map集合
    --%>
    <%--el表达式获取数据,从域对象中--%>
    <%--基本数据类型--%>
    <%request.setAttribute("num",11);%>
    ${num}<br/>
    <%--自定义对象--%>
<%--    <%Student stu = new Student("tom", 18);%>--%>
<%--    <%request.setAttribute("stu",stu);%>--%>
<%--    ${stu}--%>
<%--    ${stu.name}--%>
<%--    ${stu.age}--%>
    <%--获取数组中的数据--%>
<%--    <%String[] strs={"tom","rose","mark"};%>--%>
<%--    <%request.setAttribute("strs",strs);%>--%>
    <%--通过el表达式获取数据--%>
    ${strs[0]}
    ${strs[1]}
    ${strs[2]}
    ${strs[3]}
    <%--el表达式获取map集合数据--%>
    <%HashMap<String,Student> map = new HashMap<>();
        map.put("h2",new Student("rose",28));
        map.put("h3",new Student("mark",78));
    %>
    <%application.setAttribute("maps",map);%>
    ${maps.h3.name}<br/>
    <%--el表达式中没有空指针异常,数组索引越界,没有字符串拼接--%>
<%--    ${maps.h2.name+maps.h2.age}--%>
    <%--el中的特殊运算符 empty
        1).判断对象是否为null
        2).判断字符串是否为空
        3).判断容器元素个数是否为0
    --%>
    <%
        String str=null;
        pageContext.setAttribute("str",str);
        String str1="";
        pageContext.setAttribute("str1",str1);
        String[] stry={};
        pageContext.setAttribute("stry",stry);
    %>
    <%--使用el表发式判断是否为空--%>
    ${empty str}<br/>
    ${empty str1}<br/>
    ${empty stry}<br/>


</body>
</html>
